/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package session.stateless;

import entity.Inventory;
import entity.MaterialRequired;
import entity.ProductionBatch;
import entity.RawMaterialDelivery;
import entity.TrackingItem;
import entity.Warehouse;
import entity.WarehouseZone;
import java.util.Date;
import java.util.List;
import javax.ejb.Local;

/**
 *
 * @author Wx
 */
@Local
public interface WarehouseSessionBeanLocal {
    
    public void removeInventory(Long inventoryId);
    
    public void updateMaterialRequired(MaterialRequired mr);
    
    public void removeRMDFromWH(Long warehouseId, Long rmdId);
    
    public void updateInventory(Inventory inventory, TrackingItem ti);
    
    public void updateInventory(Inventory inventory);
    
    public Inventory getInventoryByProduct(String name);
    
    public Inventory getInventoryByRawMaterial(String name);
    
    public void deleteZoneFromWarehouse(Long warehouseId, Long zoneId);
    
    public void updateWarehouseZone(WarehouseZone wz);
    
    public WarehouseZone getWarehouseZone(Long id);
    
    public void addWarehouseZone(WarehouseZone warehouseZone);
    
    public WarehouseZone getWarehouseZoneByName(String name, Long id);
    
    public WarehouseZone getWarehouseZone(String name);
    
    public List<WarehouseZone> getWarehouseZones();

    public List<Warehouse> getWarehouses();

    public Warehouse getWarehouse(Long warehouseId);

    public void updateWarehouse(Long warehouseId, ProductionBatch productionBatch);

    public void updateWarehouse(Long warehouseId, RawMaterialDelivery rawMaterialDelivery);

    public void updateWarehouse(Long warehouseId, WarehouseZone warehouseZone);
    
    public Integer getInventory (Long warehouseId,String code);
    
    public Date checkDateFromInventory (String code, Integer quantity);

}
